package com.bfly.mall.advert.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bfly.core.base.entity.BaseEntity;
import com.bfly.mall.advert.enums.CouponUseRange;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 优惠卷
 *
 * @author 长沙商脉科技有限公司
 * @date 2020/9/15 20:48
 */
@TableName(value = "coupon", resultMap = "CouponResultMap")
public class Coupon extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 5500998483902919800L;
    /**
     * 名称
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:49
     */
    private String name;

    /**
     * 优惠卷使用范围
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/21 10:36
     * @see CouponUseRange
     */
    @TableField("use_range")
    private int useRange;

    /**
     * 使用范围ID集合 用","隔开
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/21 10:40
     */
    @TableField(exist = false)
    private List<CouponRangeBind> couponRangeBinds;

    /**
     * 描述
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:49
     */
    private String remark;

    /**
     * 数量
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:49
     */
    private int total;

    /**
     * 剩余数量
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:49
     */
    private int remaining;

    /**
     * 每人限领数量
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:50
     */
    @TableField("limit_num")
    private int limitNum;

    /**
     * 优惠金额
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:50
     */
    private BigDecimal discount;

    /**
     * 最低消费
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:50
     */
    @TableField("minimums")
    private BigDecimal minimums;

    /**
     * 优惠卷状态
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:51
     * @see com.bfly.mall.advert.enums.CouponStatus
     */
    @TableField("status")
    private int status;

    /**
     * 领卷后有效期天数
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:51
     */
    private int days;

    /**
     * 领卷开始时间
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:52
     */
    @TableField("activity_start")
    private Date activityStart;

    /**
     * 领卷结束时间
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:52
     */
    @TableField("activity_end")
    private Date activityEnd;

    public List<CouponRangeBind> getCouponRangeBinds() {
        return couponRangeBinds;
    }

    public void setCouponRangeBinds(List<CouponRangeBind> couponRangeBinds) {
        this.couponRangeBinds = couponRangeBinds;
    }

    public int getUseRange() {
        return useRange;
    }

    public void setUseRange(int useRange) {
        this.useRange = useRange;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public int getRemaining() {
        return remaining;
    }

    public void setRemaining(int remaining) {
        this.remaining = remaining;
    }

    public int getLimitNum() {
        return limitNum;
    }

    public void setLimitNum(int limitNum) {
        this.limitNum = limitNum;
    }

    public BigDecimal getDiscount() {
        return discount;
    }

    public void setDiscount(BigDecimal discount) {
        this.discount = discount;
    }

    public BigDecimal getMinimums() {
        return minimums;
    }

    public void setMinimums(BigDecimal minimums) {
        this.minimums = minimums;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public int getDays() {
        return days;
    }

    public void setDays(int days) {
        this.days = days;
    }

    public Date getActivityStart() {
        return activityStart;
    }

    public void setActivityStart(Date activityStart) {
        this.activityStart = activityStart;
    }

    public Date getActivityEnd() {
        return activityEnd;
    }

    public void setActivityEnd(Date activityEnd) {
        this.activityEnd = activityEnd;
    }
}
